Use this function as a building block in complex expressions which need a tool for picking elements using a random generator from a list or lists. This version of the 'pick' series of functions has two distinct features: in picking elements from a single list it will not replicate items; when the :list parameter is set for a multiple list lists rather than items in lists are picked. For a detailed view of the parameters of this function see pick-rnd.
(setq pat1 '(a a b c c d e f g h))
(setq pat2 '((a b a b c d) (a b e b c d) (e f g h)))